//
// Created by miaomiaole on 2023/3/29.
//

#ifndef CMAKECXX_PSTASH_H
#define CMAKECXX_PSTASH_H


class PStash {
    int quantity;
    int next;

    // 指针storage的指针
    void **storage;

    void inflate(int increase);

public:
    PStash() : quantity(0), next(0), storage(0) {};

    ~PStash();

    int add(void *element);

    // 第一个const 代表该函数的返回值无法
    // 第二个const代表该函数不会改变对象内部成员
    void *operator[](int index) const;

    void *remove(int index);


    int count() const { return next; }


};


#endif //CMAKECXX_PSTASH_H
